//using System;
//using System.Collections.Generic;
//using System.Text;
//using Microsoft.VisualStudio.Shell;
//using Microsoft.VisualStudio.Shell.Interop;
//using Microsoft.VisualStudio;
//using System.Runtime.InteropServices;
//using Microsoft.VisualStudio.Package;

//namespace NBusiness.VisualStudio
//{
//    [DefaultRegistryRoot("Software\\Microsoft\\VisualStudio\\8.0Exp")]
//    [ProvideProjectFactory(typeof(ESharpProjectFactory), 
//        "Visual E#", 
//        "E# Project Files (*.esproj);*.esproj", 
//        "esproj",
//        "esproj",
//        ".\\null",
//        LanguageVsTemplate="ESharp")]
//    [SingleFileGeneratorSupportRegistrationAttribute(typeof(ESharpProjectFactory))]
//    [ProvideObject(typeof(ESharpPropertyPage))]
//    [ProvideObject(typeof(ESharpBuildPropertyPage))]
//    // TODO: Add this menu resource [ProvideMenuResource(1000, 1)]
//    [ProvideEditorExtensionAttribute(typeof(ESharpEditorFactory), ".es", 32, NameResourceID=300)]
//    [ProvideEditorLogicalView(typeof(EditorFactory), "{7651a702-06e5-11d1-8ebd-00a0c90f26ea}")]  //LOGVIEWID_Designer
//    [ProvideEditorLogicalView(typeof(EditorFactory), "{7651a701-06e5-11d1-8ebd-00a0c90f26ea}")]  //LOGVIEWID_Code
//    [ProvideProjectItem(typeof(ESharpProjectFactory), 
//        "Visual E# Items", 
//        ".\\null",
//        1)]
//    [ProvideLoadKey("Standard", "1.0", "#112", "none", 114)]
//    [GuidAttribute(Guids.guidESharpProjectString)]
//    public class ESharpProjectPackage : ProjectPackage, IVsInstalledProduct
//    {
//        protected override void Initialize()
//        {
//            base.Initialize();

//            this.RegisterProjectFactory(new ESharpProjectFactory(this));
//            this.RegisterEditorFactory(new ESharpEditorFactory(this));
//        }


//        #region IVsInstalledProduct Members
//        /// <summary>
//        /// This method is called during Devenv /Setup to get the bitmap to
//        /// display on the splash screen for this package.
//        /// </summary>
//        /// <param name="pIdBmp">The resource id corresponding to the bitmap to display on the splash screen</param>
//        /// <returns>HRESULT, indicating success or failure</returns>
//        public int IdBmpSplash(out uint pIdBmp)
//        {
//            pIdBmp = 0;

//            return VSConstants.S_OK;
//        }

//        /// <summary>
//        /// This method is called to get the icon that will be displayed in the
//        /// Help About dialog when this package is selected.
//        /// </summary>
//        /// <param name="pIdIco">The resource id corresponding to the icon to display on the Help About dialog</param>
//        /// <returns>HRESULT, indicating success or failure</returns>
//        public int IdIcoLogoForAboutbox(out uint pIdIco)
//        {
//            pIdIco = 400;

//            return VSConstants.S_OK;
//        }

//        /// <summary>
//        /// This methods provides the product official name, it will be
//        /// displayed in the help about dialog.
//        /// </summary>
//        /// <param name="pbstrName">Out parameter to which to assign the product name</param>
//        /// <returns>HRESULT, indicating success or failure</returns>
//        public int OfficialName(out string pbstrName)
//        {
//            pbstrName = GetResourceString("@ProductName");
//            return VSConstants.S_OK;
//        }

//        /// <summary>
//        /// This methods provides the product description, it will be
//        /// displayed in the help about dialog.
//        /// </summary>
//        /// <param name="pbstrProductDetails">Out parameter to which to assign the description of the package</param>
//        /// <returns>HRESULT, indicating success or failure</returns>
//        public int ProductDetails(out string pbstrProductDetails)
//        {
//            pbstrProductDetails = GetResourceString("@ProductDetails");
//            return VSConstants.S_OK;
//        }

//        /// <summary>
//        /// This methods provides the product version, it will be
//        /// displayed in the help about dialog.
//        /// </summary>
//        /// <param name="pbstrPID">Out parameter to which to assign the version number</param>
//        /// <returns>HRESULT, indicating success or failure</returns>
//        public int ProductID(out string pbstrPID)
//        {
//            pbstrPID = GetResourceString("@ProductID");
//            return VSConstants.S_OK;
//        }

//        #endregion

//        /// <summary>
//        /// This method loads a localized string based on the specified resource.
//        /// </summary>
//        /// <param name="resourceName">Resource to load</param>
//        /// <returns>String loaded for the specified resource</returns>
//        public string GetResourceString(string resourceName)
//        {
//            string resourceValue;
//            IVsResourceManager resourceManager = (IVsResourceManager)GetService(typeof(SVsResourceManager));
//            if (resourceManager == null)
//            {
//                throw new InvalidOperationException("Could not get SVsResourceManager service. Make sure the package is Sited before calling this method");
//            }
//            Guid packageGuid = this.GetType().GUID;
//            int hr = resourceManager.LoadResourceString(ref packageGuid, -1, resourceName, out resourceValue);
//            Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(hr);
//            return resourceValue;
//        }
//    }
//}
